# coding: utf-8
# File   :  setting
# Author :  wangsheng
# @Time  :  2025/5/7 下午2:58
import os
from typing import Text  # 类型注解，声明path参数和返回值为文本类型


def root_path():
    """获取项目根路径（当前文件的上两级目录）"""
    # __file__ 表示当前文件的路径
    # os.path.abspath() 获取绝对路径（消除符号链接等影响）
    # os.path.dirname() 获取父目录路径
    # 两次dirname获取上两级目录
    path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    return path  # 示例：/User/project_root


def ensure_path_sep(path: Text) -> Text:
    """
    标准化路径分隔符并拼接绝对路径
    参数:
        path: 需要处理的相对路径（可能包含/或\）
    返回:
        标准化后的绝对路径（使用系统分隔符）
    """
    # 处理Linux风格路径（替换/为系统分隔符）
    if "/" in path:
        # os.sep会根据系统自动选择/或\
        # 例如：将"a/b/c"转为["a","b","c"]再用os.sep连接
        path = os.sep.join(path.split("/"))  # -> "a\b\c" (Windows)

    # 处理Windows风格路径（替换\为系统分隔符）
    if "\\" in path:
        path = os.sep.join(path.split("\\"))  # -> "a\b\c" (Windows)

    # 拼接项目根路径（确保最终路径为绝对路径）
    return root_path() + path  # 示例：/User/project_root/a/b/c

